package ru.fivestarter.view.diary;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import ru.fivestarter.entities.diary.StructGoals;
import ru.fivestarter.model.diary.BusinessDiary;





public class DiaryBean {	
	
	private Date calDate;
	private Locale locale;
	private String pattern="dd-MM-yyyy";
	private StructGoals myGoal;
	
	@EJB
	private BusinessDiary businessD;
	public DiaryBean() {
		// TODO Auto-generated constructor stub
	}	

	public Locale getLocale() {
		return locale;
	}

	public void setLocale(Locale locale) {
		this.locale = locale;
	}

	public String getPattern() {
		return pattern;
	}

	public void setPattern(String pattern) {
		this.pattern = pattern;
	}
	
	public Date getCalDate() {
		return calDate;
	}

	public void setCalDate(Date calDate) {
		this.calDate = calDate;
	}

	public void test( ){//вызывается при нажатии дня на календаре.
		if(calDate!=null){
			Calendar tempCalendar=Calendar.getInstance();
			tempCalendar.setTime(calDate);
			FacesContext context = FacesContext.getCurrentInstance();
			HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
			myGoal=businessD.getGoals(request.getUserPrincipal().getName(), tempCalendar);
			if(myGoal==null){
				myGoal=new StructGoals();
				myGoal.setDataDiary(Calendar.getInstance());
				myGoal.getDataDiary().setTime(calDate);
			}
			
		}		
	}
	
	public BusinessDiary getBusinessD() {
		return businessD;
	}

	public void setBusinessD(BusinessDiary businessD) {
		this.businessD = businessD;
	}
	
	public void init(){//Вызывается при инициализации приложения в данном случае чтоб не нарушать функционал этот метод должен вызываться при прорисовке страницы.
						//пришлось рисовать фильтр который при своем создании вызывает инит тут
		FacesContext context = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
		myGoal=new StructGoals();
		myGoal=businessD.getGoals(request.getUserPrincipal().getName(), myGoal.getDataDiary());
		this.locale=request.getLocale();
		calDate=myGoal.getDataDiary().getTime();
	}
	
	public void apply(){//Вызывается при нажатии кнопки ок.(все запоминается)
		FacesContext context = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
		businessD.setGoals(request.getUserPrincipal().getName(), myGoal);
	}

	public StructGoals getMyGoal() {
		return myGoal;
	}

	public void setMyGoal(StructGoals myGoal) {
		this.myGoal = myGoal;
	}
	    
	


}
